﻿using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;

namespace T.FAS.Runtime.Metadata.Entity.Page
{
    [Serializable]
    public abstract class AbsMetaDataContent : IMetaDataContent
    {
        #region 接口属性
        
        public virtual string MetaDataID { get; set; }
        public virtual string MetaDataCode { get; set; }
        public virtual string MetaDataName { get; set; }
        public virtual DateTime CreateTime { get; set; }
        public virtual string Creator { get; set; }
        public virtual DateTime LastModifyTime { get; set; }
        public virtual string LastModifier { get; set; }

        [JsonIgnore]
        public IMetaData MetaData { get; set; }

        public virtual string ProjectBranchID { get; set; }
        #endregion

        #region 接口动作、事件
        //public virtual Version CurrentVersion { get; set; }
        //public virtual Version CompatibleMinVersion { get; set; }
        //public virtual Version EngineVersion { get; set; }

        public event PropertyChangedEventHandler PropertyChanged;

        public abstract object Clone();

        #endregion
    }
}
